package muni.ilo.servlet;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;

import muni.ilo.dto.CartaDesaprobacionDTO;
import muni.ilo.dto.InforLicObraDTO;
import muni.ilo.dto.InformeCompletoDTO;
import muni.ilo.dto.SolicitudContDTO;
import muni.ilo.service.ApplicationBusinessDelegate;
import muni.ilo.service.LicenciaIfServices;


public class LicenciaServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private static HttpSession lasesion;
	 ApplicationBusinessDelegate abd = new ApplicationBusinessDelegate();
	 LicenciaIfServices servicio = abd.getLicenciaService();
	 private static Logger lgrLicenciaServlet= Logger.getLogger(LicenciaServlet.class);
	 
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String strOperacion = request.getParameter("operacion");
		lasesion=request.getSession();
		
		if(strOperacion.equals("listasolapdes")){
			listaSolAprobDesap(request, response,lasesion);
		}if(strOperacion.equals("obtenersoli")){
			this.obtenerSolicitud(request, response,lasesion);
		}if(strOperacion.equals("regentrelic")){
			this.registrarEntregaLicencia(request, response,lasesion);
		}if(strOperacion.equals("obtenerlic")){
			this.obtenerLicencia(request, response,lasesion);
		}if(strOperacion.equals("obtenercarta")){
			this.obtenerCarta(request, response,lasesion);
		}
	}

	private void obtenerCarta(HttpServletRequest request,
			HttpServletResponse response, HttpSession lasesion2) {
		String strCodSoli = request.getParameter("codSoli");
		String strVisible = request.getParameter("visimp");
		SimpleDateFormat sdfFormateador = null;
		sdfFormateador = new SimpleDateFormat("MMMM");
		String strMes = sdfFormateador.format(new Date());
		sdfFormateador = new SimpleDateFormat("dd");
		String strDia = sdfFormateador.format(new Date());
		sdfFormateador = new SimpleDateFormat("yyyy");
		String strAnio = sdfFormateador.format(new Date());
		try{
			
			CartaDesaprobacionDTO objCarta = servicio.obtenerCarta(strCodSoli);
			request.setAttribute("b_carta", objCarta);
			request.setAttribute("isvisible", strVisible);
			request.setAttribute("tipo", "carta");
			request.setAttribute("dia", strDia);
			request.setAttribute("mes", strMes);
			request.setAttribute("anio", strAnio);
			RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/CU06 2 LicenciaDeObra.jsp");
			dispatcher.forward(request, response);
			
		}catch (Exception e) {
			lgrLicenciaServlet.warn(e.getStackTrace().toString());
			lgrLicenciaServlet.error(e.getStackTrace().toString());
			lgrLicenciaServlet.fatal(e.getStackTrace().toString());
		}
		
	}

	private void obtenerLicencia(HttpServletRequest request,
			HttpServletResponse response, HttpSession lasesion2) {
		String strCodSoli = request.getParameter("codSoli");
		String strVisible = request.getParameter("visimp");
		SimpleDateFormat sdfFormateador = null;
		sdfFormateador = new SimpleDateFormat("MMMM");
		String strMes = sdfFormateador.format(new Date());
		sdfFormateador = new SimpleDateFormat("dd");
		String strDia = sdfFormateador.format(new Date());
		sdfFormateador = new SimpleDateFormat("yyyy");
		String strAnio = sdfFormateador.format(new Date());
		try{
			
			InforLicObraDTO objInfLicOb = servicio.obtenerLicencia(strCodSoli);
			request.setAttribute("b_licencia", objInfLicOb);
			request.setAttribute("isvisible", strVisible);
			request.setAttribute("tipo", "licencia");
			request.setAttribute("dia", strDia);
			request.setAttribute("mes", strMes);
			request.setAttribute("anio", strAnio);
			RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/CU06 2 LicenciaDeObra.jsp");
			dispatcher.forward(request, response);
			
		}catch (Exception e) {
			lgrLicenciaServlet.warn(e.getStackTrace().toString());
			lgrLicenciaServlet.error(e.getStackTrace().toString());
			lgrLicenciaServlet.fatal(e.getStackTrace().toString());
		}
		
	}

	private void registrarEntregaLicencia(HttpServletRequest request,
			HttpServletResponse response, HttpSession lasesion2) {
		String strCodSoli = request.getParameter("codSoli");
		try{
			String strMensaje = servicio.registrarEntrega(strCodSoli);
			request.setAttribute("mensaje", strMensaje);
			RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/CU06 1 RegistrarEntregaLicencia.jsp");
			dispatcher.forward(request, response);
		}catch (Exception e) {
			lgrLicenciaServlet.warn(e.getStackTrace().toString());
			lgrLicenciaServlet.error(e.getStackTrace().toString());
			lgrLicenciaServlet.fatal(e.getStackTrace().toString());
		}
		
	}

	private void obtenerSolicitud(HttpServletRequest request,
			HttpServletResponse response, HttpSession lasesion2) {
		String strCodSoli = request.getParameter("solaprdesa");
		try{
			InformeCompletoDTO objInfComp = servicio.obtenerSolicitud(strCodSoli);
			lasesion2.setAttribute("b_solicitud", objInfComp);
			RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/CU06 1 RegistrarEntregaLicencia.jsp");
			dispatcher.forward(request, response);
		}catch (Exception e) {
			lgrLicenciaServlet.warn(e.getStackTrace().toString());
			lgrLicenciaServlet.error(e.getStackTrace().toString());
			lgrLicenciaServlet.fatal(e.getStackTrace().toString());
		}
		
	}

	private void listaSolAprobDesap(HttpServletRequest request,
			HttpServletResponse response, HttpSession lasesion2) {
		try{
			
			List<SolicitudContDTO> lstSolicitudes = servicio.listaSolAprobDesap();
			lasesion2.setAttribute("l_solicapde", lstSolicitudes);
			lasesion2.removeAttribute("b_solicitud");
			RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/CU06 1 RegistrarEntregaLicencia.jsp");
			dispatcher.forward(request, response);
		}catch (Exception e) {
			lgrLicenciaServlet.warn(e.getStackTrace().toString());
			lgrLicenciaServlet.error(e.getStackTrace().toString());
			lgrLicenciaServlet.fatal(e.getStackTrace().toString());
		}
		
	}

}
